package datas
{
	/**
	 * Story 보드를 구성하는 Cut 컴퍼넌트의 데이터유형 
	 * @author hanjd
	 * 
	 */	
	public class CutData
	{
		// 라이브러리상의 참조 데이터
		private var _original: LibraryItem;
		// 배경음악
		private var _sound: LibraryItem;
		
		/**
		 * 생성자 
		 * @param original
		 * 
		 */		
		public function CutData( original: LibraryItem )
		{
			super();
			
			this._original = original;
			this._original.retain();
		}
		
		// 원본 참조
		public function get original(): LibraryItem
		{
			return this._original;
		}
		// 사운드 설정
		public function set sound( value: LibraryItem ): void
		{
			if( this._sound != null )
			{
				this._sound.release();
			}
			
			this._sound = value;
			if( this._sound != null )
			{
				this._sound.retain();
			}
		}
		public function get sound(): LibraryItem
		{
			return this._sound;
		}
		
		// 참조 제거
		public function destroy(): void
		{
			this._original.release();
			if( this._sound != null ) this._sound.release();
		}
		
		// 최종 결과물을 위한 태그 생성
		public function getJSONObject(): String
		{
			var _arr: Array = [];
			_arr.push( '"src":"'+ FileManager.OUTPUT_IMAGES_FOLDER_NAME+"/"+this._original.publishFileName+'"' );
			_arr.push( '"type": "'+this._original.type+'"' );
			
			if( this._sound != null )
			{
				_arr.push( '"sound":"'+FileManager.OUTPUT_IMAGES_FOLDER_NAME+"/"+this._sound.publishFileName+'"' );
			}
			// SWF 무비
			if( this._original.type == LibraryItemType.SWF.name )
			{
				_arr.push( '"width":"'+this._original.contentInfo.width+'"' );
				_arr.push( '"height":"'+this._original.contentInfo.height+'"' );
				_arr.push( '"version":"'+this._original.contentInfo.version+'"' );
			}
			
			// VIDEO
			if( this._original.type == LibraryItemType.VIDEO.name )
			{
				_arr.push( '"width":"'+this._original.contentInfo.width+'"' );
				_arr.push( '"height":"'+this._original.contentInfo.height+'"' );
			}
			
			return "{"+_arr.join(",")+"}";
		}
	}
}